#pragma once
#include "Grid.h"
#include "HUD.h"
#include "SimpleHighscoreService.h"

class GameCore {

public:
	GameCore(void);
	~GameCore() {
		delete m_Highscores;
		delete m_Grid;
	}
	Grid& grid() {
		return *m_Grid;
	}
	HUD& hud() {
		return *m_HUD;
	}
	Score& score() {
		return m_Score;
	}
	void resetScore();
	int getLevel() {
		return m_Level;
	}
	void setLevel(int lvl) {
		m_Level = lvl;
	}
	HighscoreService& highscores() {
		return *m_Highscores;
	}
private:
	int m_Level;
	Grid* m_Grid;
	HUD* m_HUD;
	HighscoreService* m_Highscores;
	Score m_Score;
};

